Answer:

When

value = 32912;

is executed nothing new is created. A pattern representing 32912 is stored in the bits of value.

Two Types of Assignment Statements

There is a difference between the statements:

value = 32912;

and

str   = new String( "The Gingham Dog" );

In the first statement, value is a primitive type, so the assigment statement puts the data directly into it. In the second statement, str is an object reference variable (the only other possibility) so a reference to the object is put into that variable.

Important: A Java variable never contains an object.

There are only primitive variables and object reference variables, and each contains a specific kind of information:

 Information it ContainsWhen on the left of =
primitive variableContains actual data.Previous data is replaced with new data.
reference variableContains information on how to find an object (a reference).Old reference is replaced with a new reference

How do you tell the two kinds of variables apart? Easy: look at how the variable is declared. Unless it was declared to be of a primitive type, it is an object reference variable. A variable will not change its declared type.

QUESTION 9:

How are the following variables declared? Click on the button of your choice.

Declaration PrimitiveObject Reference
int foo;
String st;
boolean flag;
Scanner scan;